m = {};

m.x = {};

m.x.p = {};
m.x.f = {};
m.x.f.init = function(modelx_id){
	if(!modelx_id)return;
	m.x.p.modelx_id = modelx_id;
	var data = {
		action:'admin/seat/ModelX/config/'+modelx_id,
	};
	var callback = function(res){
		jQuery('#modelx_container').html(res.html);
		var table_id = jQuery('#modelx_container').find('.table_:first').data('id');
		if(table_id){
			m.tb.f.table(table_id);
		}
	};
	m.action(data,callback);
};


m.tb = {};
m.tb.p = {};
m.tb.f = {};
m.tb.p.seat = 1;
m.tb.f.table = function(table_id){
	m.x.p.table_id = table_id;
	var data = {
		action:'admin/seat/ModelX/table/'+table_id+'/'+m.tb.p.seat,
	};
	var callback = function(res){
		jQuery('#model_table').html(res.html);
		if(m.tb.p.seat){
			m.td.f.bind();
		}else{
			m.tr.f.bind();
		}
	};
	m.action(data,callback);
};

m.tb.f.editModel = function(model){
	if(!m.x.p.table_id){
		alert('没有选中Table');
		return;
	}
	if(model){
		m.tb.p.seat = 1;
	}else{
		m.tb.p.seat = 0;
	}
	m.tb.f.table(m.x.p.table_id)
};
m.tb.f.add = function(){
	//jQuery().	
	var data = {
		action:'admin/seat/Modelx/addTable/'+m.x.p.modelx_id,
		type:'get'
	};
	var callback = function(res){
		jQuery('#editor').html(res.html);
	};
	m.action(data,callback);
};
m.tb.f.edit = function(id){
	var data = {
		action:'admin/seat/ModelX/editTable/'+id,
		type:'get'
	};
	var callback = function(res){
		jQuery('#editor').html(res.html);
	};
	m.action(data,callback);
};
m.tb.f.submit = function(tar){
	var data = {
		action:$(tar).attr('action'),
		type:'post',
		data:$(tar).serializeObject()
	};
	var callback = function(res){
		if(res.state){
			m.x.f.init(m.x.p.modelx_id);
		}else{
			jQuery('#editor').html(res.html);
		}
	};
	m.action(data,callback);
};
//----------------------------------------------------------------------------------------------
m.tr = {};
m.tr.p = {};
m.tr.f = {};
m.tr.p.timer = false;
m.tr.f.bind = function(){
	jQuery('#model_table ul').click(function(){
		clearTimeout(m.tr.p.timer);
		var tar  = this;
		m.tr.p.timer = setTimeout(function(){
            //单击事件在这里
           m.tr.f.edit(tar);
        }, 300,tar);
	});
	jQuery('#model_table ul').dblclick(function(e){
		clearTimeout(m.tr.p.timer);
		if($(this).data('id')){
			m.tr.f.del(this);
		}
	})
};
m.tr.f.add = function(){
	if(!m.x.p.table_id){
		alert('没有选中Table');
		return;
	}
	var data = {
		action:'admin/seat/ModelX/addTr/'+m.x.p.table_id,
		type:'get'
	};
	var callback = function(res){
		jQuery('#editor').html(res.html);
	};
	m.action(data,callback);
};
m.tr.f.del = function(tar){
	var id = $(tar).data('id');
	if(!confirm('确定删除行#'+id+'?')){
		return;
	}
	var data = {
		action:'admin/seat/ModelX/delTr/'+id,
		type:'get'
	};
	var callback = function(res){
		if(res.state){
			m.tb.f.table(m.x.p.table_id);
		}else{
			alert(res.msg);
		}
	};
	m.action(data,callback);
};
m.tr.f.edit = function(tar){
	var id = $(tar).data('id');
	var data = {
		action:'admin/seat/ModelX/editTr/'+id,
		type:'get'
	};
	var callback = function(res){
		jQuery('#editor').html(res.html);
	};
	m.action(data,callback);
};

//----------------------------------------------------------------------------------------------
m.td = {};
m.td.f = {};
m.td.p = {};
m.td.p.timer = false;
m.td.f.bind = function(){
	jQuery('#model_table li').click(function(){
		clearTimeout(m.td.p.timer);
		var tar  = this;
		m.td.p.timer = setTimeout(function(){
            //单击事件在这里
            if($(tar).data('td')){
            	m.td.f.edit(tar);
            }else{
            	m.td.f.add(tar);
            }

        }, 300,tar);
	});
	jQuery('#model_table li').dblclick(function(e){
		clearTimeout(m.td.p.timer);
		if($(this).data('td')){
			m.td.f.del(this);		
		}
	})
};
m.td.f.getFillNum = function(){
	var $tar = jQuery('#fill_num');
	if($tar.val()>0){
		var rt = $tar.val()
		$tar.val(rt-1);
		return rt;
	}else{
		return 0;
	}
};
m.td.f.add = function(tar){
	var seat = $(tar).data();
	var data = {
		type:'post',
		action:'admin/seat/ModelX/addTd/',
		data:{
			'data[tr_id]':seat.tr,
			'data[y]':seat.index,
			'data[name]':m.td.f.getFillNum(),
			'data[sort]':100,
			'data[enable]':1
		}
	};
	var callback = function(res){
		m.tb.f.table(m.x.p.table_id);
	};
	m.action(data,callback);
};
m.td.f.del = function(tar){
	var seat = $(tar).data();
	var data = {
		action:'admin/seat/ModelX/delTd/'+seat.td,
		type:'get'
	};
	var callback = function(res){
		if(res.state){
			m.tb.f.table(m.x.p.table_id);
		}else{
			alert(res.msg);
		}
	};
	m.action(data,callback);
};
m.td.f.edit = function(tar){
	var seat = $(tar).data();
	var data = {
		action:'admin/seat/ModelX/editTd/'+seat.td,
		type:'get'
	};
	var callback = function(res){
		jQuery('#editor').html(res.html);
	};
	m.action(data,callback);
};

m.submit = function(tar){
	var data = {
		action:$(tar).attr('action'),
		type:'post',
		data:$(tar).serializeObject()
	};
	var callback = function(res){
		if(res.state){
			m.tb.f.table(m.x.p.table_id);
		}else{
			jQuery('#editor').html(res.html);
		}
	};
	m.action(data,callback);
};

m.loading = false;
m.action = function(data,callback,errCallback){
	if(m.loading)return ;
	m.loading = true;
	var action = data.action;
	jQuery.ajax({
		type:data.type?data.type:'POST',
		url:data.action,
		data:data.data,
		dataType:'json',
		success : function(res){
			m.loading = false;
			callback(res);
		},
		error: function (data, status, e){
			m.loading = false;
			if(errCallback){
				errCallback();
			}
		},
		complete:function(){
			//cl.p.loading = false;
		}
	});
};
